home *** CD-ROM | disk | FTP | other *** search
- ===============================================================================
- Mandelbrot/Julia set 2D/3D EGA/VGA Fractal Generator
- Written by Tom Collins and Dan Rowley
- (C) 1989 by Innovative Computer Solutions
- Documentation for FRACT v3.0
- ===============================================================================
- Shareware Notice
- -------------------------------------------------------------------------------
-
- This program is shareware. Please play with it for a few days. If you grow
- attached to it, register it. If you sell computers/monitors/VGA cards, and
- you use my program to show off the capabilities of such devices, I'd like you
- to register FRACT. (Think about it this way, you're using my program to make
- money. If it impresses someone enough to buy a VGA monitor/card, I think it's
- worth it to you to send me a few bucks.)
-
- [See the 'Registration' section at the end of this file for more info]
-
- -------------------------------------------------------------------------------
-
- You should have the following files on your disk:
-
- FRACT.EXE - The actual Fractal Generator.
- FRACT.DOC - This documentation.
- FRACT.NEW - What's been changed from previous versions.
- REGISTER.FRM - Registration form
- ????????.IMG
- ????????.DAT - Sample images and data files for use with FRACT
-
- If any of these files are missing, please call one of the boards listed at the
- end of this file to get a good copy. When redistributing this program, be sure
- to include all of the above files.
-
- -------------------------------------------------------------------------------
- How to Use FRACT
- -------------------------------------------------------------------------------
-
- Any time the computer is drawing a image, hitting the 'S' key or the left
- button on the mouse will save the image. Pressing the escape key or the right
- mouse button will abort the image without saving it. If you save an image,
- you'll be able to continue drawing it at another time.
-
- Menu items and their associated functions:
-
- Create a 2-D Mandelbrot image
- -----------------------------
- The program will ask you for the x (real) and y (imaginary) coordinates
- corresponding to the center of the image. You will then be prompted for
- the side length and the filename to save the image under. Leaving the
- filename field blank will cause the image to be drawn without saving.
-
- [Note: The Mandelbrot set is contained within the x coordinates (-2.1 and
- +0.7) and the y coordinates (+1.4 and -1.4). You can create an image of
- the Mandelbrot set by using the following data: x:-0.7, y:0, side:2.8.]
-
- The image will be drawn with dots separated by progressively smaller
- spaces. This should give you some idea of what the image will be like so
- you can abort it early if you don't like it.
-
-
- Create a 3-D Mandelbrot image
- -----------------------------
- The only difference between the 2-D and 3-D versions of the Mandelbrot
- images is the method used to draw the image. The 3-D image is drawn with
- diagonal lines starting from the upper right-hand corner.
-
-
- Create a 2-D Julia image
- ------------------------
- The program will ask you for the x and y coordinates corresponding to a
- point on the Mandelbrot Set. This is the point from which the Julia set
- will be drawn.
-
- The Julia image will be drawn from both sides, as it is symmetric about
- the origin.
-
-
- Create a 3-D Julia image [registered version only]
- --------------------------------------------------
- Once again, the only difference between the 2-D and 3-D versions of the
- Julia sets is the method used to draw the image. Like the 3-D Mandelbrot,
- the 3-D Julia will be drawn with diagonal lines starting from the upper
- right-hand corner.
-
-
- Continue drawing an old image
- -----------------------------
- A list of available files will be displayed. After choosing a file, the
- image will be loaded and the program will pick up from where it left off.
- Hitting escape from the list of files will return you to the main menu.
-
-
- Remove registration notices [registered version only]
- -----------------------------------------------------
- This option will remove the 'Register Your Software' message from a file
- chosen from the file list.
-
-
- Add extra sets of iterations
- ----------------------------
- This feature is used to improve the quality of some images. Adding extra
- iterations redraws black areas of the image, possibly adding more color.
- Each set of iterations adds approximately 200 actual iterations to the
- computations for each dot [the image starts out with 200 iterations].
- Adding iterations will slow down the generation of the image, and it is
- advised that you add at most 5 sets. [Note: Adding is cumulative.]
-
-
- Load and view image
- -------------------
- You will once again go through the file selection menu. After choosing an
- image it will be loaded and displayed on the screen [EGA images take
- longer than VGA. VGA images will be faded onto the screen].
-
- While the image is still on the screen the following options are
- available:
- Pressing 'X' will change to and from an 'X-ray' palette. This
- occasionally produces some interesting effects.
-
- Pressing the space bar will cause the palette to rotate giving the
- illusion of movement. Pressing the space bar again will stop the
- rotation. If you are using a mouse, pressing the left button will
- start the palette changing and pressing the right button will stop
- it. While holding the left button down, the speed of rotation can be
- adjusted by moving the mouse horizontally.
-
- Pressing escape or the 'Q' key will bring you back to the main menu.
-
-
- Get info on an image
- --------------------
- This option will display pertinent information on any image you choose.
-
-
- Zoom in to create a new image
- -----------------------------
- This option allows you to choose any point on an existing image and
- magnify it to create a new image. Choose the point by using the arrow
- keys/numeric keypad on the keyboard or the mouse. Clicking the left
- mouse button, or pressing 'M' or Enter on the keyboard will create a
- Mandelbrot image. Clicking the right mouse button, or pressing 'J' will
- create the corresponding Julia Set for that point. When creating a new
- Mandelbrot image you will be asked for a magnification factor [Note: 25
- is a good factor]. When creating any image, you will also be asked for a
- filename to save the image under.
-
-
- Slide Show of all images [registered version only]
- --------------------------------------------------
- This option will cycle through all of the images in the current directory,
- displaying and rotating the palette for a short period of time before
- loading the next image. VGA images will fade in from black, and then fade
- back to black after cycling. Press escape to abort the slide show.
-
-
- Quit
- ----
- Clears the screen and drops to DOS.
-
-
- -------------------------------------------------------------------------------
- History
- -------------------------------------------------------------------------------
- I've been interested in Fractal Geometry, especially the Mandelbrot Set, ever
- since my father tried to write a program from algorithms appearing in the
- August 1985 Scientific American Computer Recreations column. When I first saw
- the program, it was on my Apple IIe. Written in BASIC, it plotted black and
- white dots on the hi-res screen in a square of 100 pixels per side. I
- modified the program to use the full screen (280x192) and the 5 colors that
- Apple hi-res is limited to. I got bored fast, so I rewrote the program using
- some double hi-res routines that reduced the size of the image to 140x140, but
- expanded the colors to include 10 of the 16 double hi-res colors available.
- Since I had brought my Apple to the limit with color and resolution, I tried a
- 3D version. It didn't work out very well, and I put the program on hold.
-
- A little while after I had failed at the 3D version, Dan Rowley offered to let
- me write some programs using super hi-res on his Apple II GS. I turned out a
- program that used the 320x200 mode with a 16 color blue scale. It turned out
- great images, but took forever to draw. (The entire Mandelbrot set took over
- 8 hours, partially because of slow plotting routines.) At about the same
- time, my father offered to let me use the new IBM PS/2 at his office. I wrote
- the original IBM version on that computer, using Turbo Pascal (probably 3.0).
- The program was limited to 4 colors, so I dropped that project.
-
- The programming stopped for the summer, until I arrived at Penn State. I
- decided to make another attempt at the 3D program, using Turbo Pascal on a
- Macintosh. The outcome wasn't all that bad, considering the fact that it was
- drawn in black and white. It did however, establish a system of plotting in
- 3D.
-
- With renewed interest in the program, I rewrote the double hi-res Apple version
- over my Thanksgiving vacation. I had it automatically draw 196 images that,
- when put together, formed the entire Mandelbrot set (and took up over 6 and 1/2
- megs of hard drive space). I set the program working when I left for school,
- and it was just finishing up when I returned 3 weeks later.
-
- During Christmas vacation, I had my friend, Dan Rowley, write some new machine
- language routines, for the GS version, to plot the data to the screen. By
- that time, I had also refined the program, and it was running much faster than
- before. With the new program and the routines, the program drew the entire
- Mandelbrot Set in only 3 hours. The only problem was that images couldn't be
- saved. Since then Dan has been working on a version written in TML Pascal.
- All GSFract related queries should be directed to him. Look for an official
- release later this year.
-
- When I returned from my Christmas break, I had the source code to an excellent
- program (PLASMA by Bret Mulvey) that included the routines I needed to use VGA
- graphics in my program. I rewrote my program in Turbo Pascal (v5.0), to
- include the VGA routines. Since then, most of the routines have been changed,
- and the code was rewritten twice. I consider this version to be the best so
- far. It can compute the entire Mandelbrot Set in approximately 20 minutes (on
- a PS/2 model 30-286), uses 320x200 pixels, and a total of 192 different colors.
- The image can be saved and reloaded, and the palette can be rotated to produce
- interesting effects.
-
- As summer vacation approached, I realized that I would no longer be able to
- develop the program on my roommate's PS/2. I quickly added EGA support to the
- program, but it was very sloppy. Since then most of the changes to Fract have
- been either cosmetic or structural. Attempts were also made to make the
- program more user friendly.
-
- -------------------------------------------------------------------------------
- About the Authors...
- -------------------------------------------------------------------------------
- I'm a sophmore majoring in Computer Engineering and Computer Science at Penn
- State University's Main campus. I've programmed in BASIC ever since I got my
- Apple IIe in 1983, and in Pascal since 1986. I'm currently trying to learn
- 'C' and taking a class in assembly.
-
- Dan Rowley is a sophmore majoring in Computer Science at Arizona State
- University. He's programmed in BASIC ever since he got his Apple ][ back in
- 1979. He now programs in Pascal, C, and assembly language on his Apple II GS
- and IBM AT. Dan has taken over development of the GS version.
-
- -------------------------------------------------------------------------------
- About Innovative Computer Solutions...
- -------------------------------------------------------------------------------
- ICS came about after an internal conflict resulted in Olympic Technologies
- being dissolved. ICS currently consists of the two authors of Fract, and we
- are committed to making computers more useful. Our services include
- consulting, computer installations, custom programming, tutoring, and computer
- maintenance.
-
- -------------------------------------------------------------------------------
- Registration/Shareware notice
- -------------------------------------------------------------------------------
- To register the program, send me five dollars and a formated disk (either
- 5.25" or 3.5") along with your name, address, phone number, and where you can
- be reached by computer. The registered version will add all gray menu options.
- For an extra twenty dollars, I'll put your company name (limit 25 characters)
- in place of the 'Register Your Software' message. If you'd like a version
- done for another computer, please tell me, and I'll try to get you a copy of
- one. I hope to have a version available for the Apple IIGS, and possibly the
- Mac II [as soon as I can find a language that supports the graphics].
-
- The ICS Headquarters is located at: Innovative Computer Solutions
- 2975 Macungie Road
- Emmaus, Pa 18049
- ATTN: Tom Collins, Jr.
-
- Tom's school address is: Tom Collins
- 618 Stuart Hall
- University Park, Pa 16802
-
- Dan's school address is: Dan Rowley
- 950 S. Terrace Rd
- Apt. D268
- Tempe, AZ 85281
-
- [Note: School addresses good until May 1990]
-
- Bitnet/Internet addresses: Tom - tbc101@psuvm.asu.edu or tbc101@psuvm.bitnet
- Dan - audsr@asuacad.asu.edu or audsr@asuacad.bitnet